home *** CD-ROM | disk | FTP | other *** search
/ Cream of the Crop 21 / Cream of the Crop 21 (Terry Blount) (October 1996).iso / program / nwlib15.zip / DEMO.ZIP / PRINTCAP.PAS < prev    next >
Pascal/Delphi Source File  |  1996-06-08  |  6KB  |  220 lines

  1. unit Printcap;
  2.  
  3. interface
  4.  
  5. uses 
  6.      SysUtils,
  7.      WinTypes, 
  8.      WinProcs, 
  9.      Classes, 
  10.      Graphics, 
  11.      Forms, 
  12.      Controls, 
  13.      Buttons,
  14.      StdCtrls, 
  15.      Spin, 
  16.      ExtCtrls, 
  17.      nwPrint, 
  18.      Nwtools, 
  19.      Nwlib, 
  20.      NWServer;
  21.  
  22. type
  23.   TwinCapture = class(TForm)
  24.     OKBtn: TBitBtn;
  25.     CancelBtn: TBitBtn;
  26.     Panel1: TPanel;
  27.     Header1: THeader;
  28.     ServerList: TListBox;
  29.     Panel2: TPanel;
  30.     Header2: THeader;
  31.     QueueList: TListBox;
  32.     Bevel1: TBevel;
  33.     Bevel2: TBevel;
  34.     Label1: TLabel;
  35.     Label2: TLabel;
  36.     Label3: TLabel;
  37.     Label4: TLabel;
  38.     cBanner: TEdit;
  39.     nCopies: TSpinEdit;
  40.     nTimeOut: TSpinEdit;
  41.     nTabs: TSpinEdit;
  42.     lAutoEndCap: TCheckBox;
  43.     bEndCap: TButton;
  44.     nForm: TSpinEdit;
  45.     Label5: TLabel;
  46.     lFormFeeds: TCheckBox;
  47.     NWLib1: TNWLib;
  48.     NWTools1: TNWTools;
  49.     NWPrint1: TNWPrint;
  50.     NWServer1: TNWServer;
  51.     Panel3: TPanel;
  52.     Header3: THeader;
  53.     qUserList: TListBox;
  54.     Panel4: TPanel;
  55.     Header4: THeader;
  56.     qOperatorList: TListBox;
  57.     Panel5: TPanel;
  58.     Header5: THeader;
  59.     qServerList: TListBox;
  60.     bQueue: TButton;
  61.     procedure FormShow(Sender: TObject);
  62.     procedure ServerListDblClick(Sender: TObject);
  63.     procedure OKBtnClick(Sender: TObject);
  64.     procedure bEndCapClick(Sender: TObject);
  65.     procedure FormCreate(Sender: TObject);
  66.     procedure QueueListDblClick(Sender: TObject);
  67.     procedure QueueListClick(Sender: TObject);
  68.   private
  69.     { Private declarations }
  70.   public
  71.     { Public declarations }
  72.   end;
  73.  
  74. var
  75.   winCapture: TwinCapture;
  76.  
  77. implementation
  78.  
  79. {$R *.DFM}
  80.  
  81. uses
  82.   list ;
  83.  
  84. { Store Capture Options }
  85. var
  86.   captureFlags : TNWCaptureFlags ; 
  87.  
  88. procedure TwinCapture.FormCreate(Sender: TObject);
  89.   begin
  90.     { Initialize Default Capture Environment Flags }
  91.     if not GetCaptureFlags(1,captureFlags) then 
  92.       AlertBox('LPT1:;Could Not Retrieve Capture Flags on Port') ;
  93.   end;
  94.  
  95. procedure TwinCapture.FormShow(Sender: TObject);
  96.   begin
  97.     { Populate Listboxes }
  98.     serverList.items.AddStrings(
  99.                       GetConnectedServerList) ;
  100.     queueList.items.AddStrings(
  101.                       GetBinderyList(GetPrimaryServerID,nw_printq)) ;
  102.     qServerList.items.AddStrings(
  103.                       getQueueServers(getPrimaryServerID,captureFlags.qname)) ;
  104.     qUserList.items.AddStrings(
  105.                       getQueueUsers(getPrimaryServerID,captureFlags.qname)) ;
  106.     qOperatorList.items.AddStrings(
  107.                       getQueueOperators(getPrimaryServerID,captureFlags.qname)) ;
  108.     bEndCap.enabled := IsCaptured(1) ; { LPT1: }                               
  109.     { Read Capture Flags }
  110.     nCopies.value  := captureFlags.Copies ;
  111.     nTabs.value    := captureFlags.tabSize ;
  112.     nTimeOut.value := captureFlags.timeout ;
  113.     cBanner.text   := captureFlags.banner ;
  114.     nForm.Value    := captureFlags.formType ;
  115.     lAutoEndCap.checked := captureFlags.autoEndCap ;
  116.     lFormFeeds.checked  := captureFlags.FormFeed ;
  117.  
  118.     { Set Listbox indexes }
  119.     serverlist.itemindex := 
  120.          serverList.items.indexOf(GetServerName(captureFlags.nServer));
  121.     queuelist.itemindex := 
  122.          queuelist.items.indexOf(captureFlags.qname) ;
  123.   end;
  124.  
  125. procedure TwinCapture.ServerListDblClick(Sender: TObject);
  126.   var
  127.     nconn : TNWConnHandle ;
  128.     ctemp : string ;
  129.   begin
  130.     { Select New Server and Build New Queue List}
  131.     if serverList.items.count > 0 then
  132.       begin
  133.         ctemp := serverList.items[serverList.itemindex] ;
  134.         nConn := GetServerHandle(ctemp) ;
  135.         if nConn > 0 then
  136.           begin
  137.             queueList.clear ;
  138.             queueList.items.AddStrings(GetBinderyList(nConn,nw_printq));
  139.           end
  140.       end;
  141.   end;
  142.  
  143. procedure TwinCapture.OKBtnClick(Sender: TObject);
  144.   var
  145.     cserver  : string ;
  146.     cqueue   : string ;
  147.   begin     
  148.     cserver := ServerList.items[MaxLong(ServerList.itemindex,0)] ;
  149.     cqueue  := queueList.items[MaxLong(queueList.itemindex,0)] ;
  150.     { Store CaptureFlags Options }
  151.     with captureFlags do begin
  152.       copies     := nCopies.value ;
  153.       banner     := cbanner.text ;
  154.       tabSize    := nTabs.value ;
  155.       timeOut    := nTimeOut.value ;
  156.       formType   := nform.value ;
  157.       autoEndCap := lAutoEndCap.checked;
  158.       formFeed   := lFormFeeds.checked ;
  159.     end;
  160.     if Capture(GetServerHandle(cserver),cQueue,1,CaptureFlags) then
  161.       begin
  162.         bEndCap.enabled := True ;
  163.         okBox(cserver +'/' + cqueue + ';Captured Successfully!') ;
  164.       end
  165.     else
  166.       AlertBox('Error Capturing LPT1: to Device ' +
  167.                queueList.items[MaxLong(queuelist.itemIndex,0)]) ;
  168.   end;
  169.  
  170. procedure TwinCapture.bEndCapClick(Sender: TObject);
  171.   begin
  172.     bEndCap.enabled := (not EndCap(1)) ;
  173.   end;
  174.  
  175. procedure TwinCapture.QueueListDblClick(Sender: TObject);
  176.   var
  177.     jobList : TStringList ;
  178.   begin
  179.     if (queueList.items.count > 0) then
  180.       begin
  181.         if (queueList.itemIndex < 0) then
  182.           queueList.itemIndex := 0 ;
  183.         {show print queue jobs}
  184.         try
  185.           application.createForm(TWinList,winList) ;
  186.           winList.inServer := getServerHandle(serverList.items[serverList.itemIndex]);
  187.           winList.inQueue  := getObjNumber(winList.inServer,
  188.                                            queueList.items[queueList.itemIndex],
  189.                                            nw_printQ) ;
  190.           { set the list form's onShow event }
  191.           winList.onShow   := winList.onPrintJobsShow ;
  192.           winList.showModal ;
  193.         finally
  194.           winList.free ;
  195.         end;
  196.       end;  
  197.   end;
  198.  
  199. procedure TwinCapture.QueueListClick(Sender: TObject);
  200.   var
  201.     jobList : TStringList ;
  202.   begin
  203.     if (queueList.items.count > 0) then
  204.       begin
  205.         qUserList.items.clear ;
  206.         qUserList.items.AddStrings(
  207.             getQueueUsers(getPrimaryServerID,queueList.items[queueList.itemIndex])) ;
  208.  
  209.         qOperatorList.items.clear ;
  210.         qOperatorList.items.AddStrings(
  211.             getQueueOperators(getPrimaryServerID,queueList.items[queueList.itemIndex])) ;
  212.  
  213.         qServerList.items.clear ;
  214.         qServerList.items.AddStrings(
  215.             getQueueServers(getPrimaryServerID,queueList.items[queueList.itemIndex])) ;
  216.       end;  
  217.   end;
  218.  
  219. end.
  220.